package com.augurit.common.util.lang;

import java.util.Calendar;

public class CalendarUtil {

	/**
	 * 由当前时间加减月份数后的日期，如要获取上个月的日期则减一个月，传入参数设为-1
	 * @param months 加减月份数，如要获取上个月的日期则设为-1，要获取下个月的日期则设为1
	 * @return 加减月份数后的日期对象
	 */
	public static Calendar calculateAdditonalMonths(int months){
		Calendar ca = Calendar.getInstance();
		ca.add(Calendar.MONTH, months);
		return ca;
	}
	
	public static Calendar calculateAdditonalMonths(Calendar ca, int months){
		ca.add(Calendar.MONTH, months);
		return ca;
	}
	
	/**
	 * 由当前时间加减月份数后的年份
	 * @param months 加减月份数，如要获取上个月的日期则设为-1，要获取下个月的日期则设为1
	 * @return 加减月份数后的年份
	 */
	public static int getYearWithAdditonalMonths(int months){
		return calculateAdditonalMonths(months).get(Calendar.YEAR);
	}
	
	/**
	 * 由当前时间加减月份数后的月份
	 * @param months 加减月份数，如要获取上个月的日期则设为-1，要获取下个月的日期则设为1
	 * @return 加减月份数后的年份
	 */
	public static int getMonthWithAdditonalMonths(int months){
		return calculateAdditonalMonths(months).get(Calendar.MONTH) + 1;
	}
	
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub 
		System.out.println(getYearWithAdditonalMonths(-1)); //获取上个月的年份
		System.out.println(getMonthWithAdditonalMonths(-1)); //获取上个月的月份
	}

}
